Ana içeriğe geç

Java Programlama Dili


Java programlama dili, James Gosling, Patrick Naughton ve Mike Sheridan tarafından Sun Microsystems'da 1990'ların başında geliştirilmiştir. İlk olarak 1995 yılında piyasaya sürülmüştür.

Java, nesne yönelimli bir programlama dilidir ve platform bağımsızdır. Yani, Java kodu bir kez yazıldığında farklı işletim sistemleri ve donanım platformları üzerinde çalıştırılabilir. Bu, Java'nın "write once, run anywhere" (bir kez yaz, her yerde çalıştır) felsefesiyle uyumludur.

Java'nın diğer özellikleri arasında şunlar yer alır:

  • Garbage collection: Bellek yönetimi otomatiktir ve kullanılmayan nesneler otomatik olarak silinir.
  • Multi-threading: Aynı program içinde birden fazla iş parçası çalıştırabilme yeteneği.
  • Exception handling: Hata yönetimi için kullanılır.
  • Security: Java, güvenliği önemseyen bir programlama dilidir ve zararlı kodların çalışmasını önlemek için çeşitli önlemler alır.
  • Class libraries: Java, çeşitli kullanışlı sınıf kitaplıklarına sahiptir, bu da programcılara daha hızlı ve kolay bir kod yazma süreci sağlar.

Java, geniş bir uygulama yelpazesinde kullanılır, özellikle masaüstü uygulamaları, mobil uygulamalar, web uygulamaları ve büyük veri işleme alanlarında yaygın olarak kullanılmaktadır.

Java'nın Avantajları & Dezavantajları

Java, diğer programlama dillerine göre birçok avantaj ve dezavantaja sahiptir. Bazıları şunlardır:

Avantajları:

  • Platform bağımsızdır: Java kodu, bir kez yazıldığında farklı platformlar üzerinde çalıştırılabilir. Bu, geliştiricilerin her platform için ayrı kod yazmak zorunda kalmamasını sağlar.
  • Nesne yönelimli: Java, nesne yönelimli bir programlama dilidir ve bu yaklaşım sayesinde kodun yeniden kullanımı, bakımı ve genişletilmesi daha kolay hale gelir.
  • Güvenli: Java, güvenli bir programlama dili olarak bilinir. Özellikle, zararlı kodların çalışmasını önlemek için sanal makine (JVM) üzerinde çalıştırılmaktadır.
  • Büyük bir topluluğa sahiptir: Java, büyük bir topluluğa sahiptir ve bu topluluk geliştiricilere yardımcı olabilir, sorunları çözmeye yardımcı olabilir ve yeni gelişmeleri takip edebilir.
  • Yüksek performans: Java, yüksek performanslı bir programlama dili olarak bilinir. Özellikle, C ve C++ gibi dillere göre daha yavaş olsa da, Java'nın sanal makine (JVM) üzerinde çalışması sayesinde performansı artırılabilir.

Dezavantajları:

  • Performans: Java, C ve C++ gibi dillere göre daha yavaş bir dildir. Bu, özellikle büyük veri işleme gibi performans gerektiren uygulamalar için dezavantajlıdır.
  • Yüksek bellek tüketimi: Java, bellek tüketimi konusunda da bazı dezavantajlara sahiptir. JVM, büyük miktarda bellek kullanabilir ve bu nedenle uygulamanın performansını etkileyebilir.
  • Daha fazla kaynak gerektirir: Java, diğer dillere göre daha fazla kaynak gerektirebilir. Bu, özellikle küçük ölçekli projeler için dezavantajlı olabilir.
  • Karmaşık: Java, bazı durumlarda karmaşık bir dildir. Özellikle, diğer programlama dillerine göre daha fazla sözdizimi kuralı vardır. Bu, geliştiricilerin öğrenme sürecini uzatabilir.

Merhaba Web3 programı

Java dilinde "Merhaba Web3" programı aşağıdaki gibi yazılabilir:

public class MerhabaDunya {
public static void main(String[] args) {
System.out.println("Merhaba Dünya!");
}
}

Bu program, "Merhaba Web3!" yazısını konsola yazdıracaktır. Ayrıca, programın adı "MerhabaWeb3" olarak belirlendi ve dosya adı da "MerhabaWeb3.java" olmalıdır.

Java'da Açıklama Satırları:

Java programlama dilinde açıklama satırları, kodların okunabilirliğini ve anlaşılırlığını artırmak için kullanılır. Açıklama satırları, Java yorumlayıcısı tarafından görmezden gelinir ve kodun çalışmasını etkilemez. Açıklama satırları iki çeşittir:

  1. Tek Satırlık Açıklamalar: Tek satırlık açıklamalar, çift slash (//) işareti ile başlar. Bu işaretlerden sonra gelen tüm metin, o satırın sonuna kadar yorum olarak kabul edilir.

Örneğin:


// Bu bir tek satırlık açıklama örneğidir.


  1. Çok Satırlı Açıklamalar: Çok satırlı açıklamalar, başlangıç işareti (/) ve bitiş işareti (/) ile çevrilir. Bu işaretler arasındaki tüm metin, açıklama olarak kabul edilir.
/*
Bu bir
çok satırlı
açıklama
örneğidir.
*/

Java'da Ön işlemci direktifleri:

Java programları ön işlemci direktifleri ile başlayabilir. Ön işlemci direktifleri, Java yorumlayıcısı tarafından derleme işlemi sırasında kullanılan talimatlar ve komutlar kümesidir. Java'daki ön işlemci direktifleri, diğer programlama dillerinde olduğu gibi # işareti ile başlar.

Örneğin:


#include <stdio.h> //C dili için bir ön işlemci direktifi


Ancak Java'da # işareti yerine, import ifadesi kullanılır. Bu ifade, belirli bir paketten bir sınıfın kullanılacağını bildirir.

Örneğin:

import java.util.Scanner; //java.util paketinden Scanner sınıfını kullanmak için import ifadesi kullanıyoruz.


Bu ifade, java.util paketindeki Scanner sınıfının programda kullanılacağını belirtir. Böylece Scanner sınıfını kullanmak için, kodda Scanner sınıfını tanımlamak ve paketin adını yazmak gerekmez.

Main Fonksiyonu

Java programlama dilinde, herhangi bir uygulamanın çalışmasına başlayacağı ilk nokta main() fonksiyonudur. main() fonksiyonu, bir Java sınıfında bulunmalıdır ve programın ana işlevi bu fonksiyonda tanımlanır.

main() fonksiyonu, aşağıdaki genel formatta tanımlanır:

public static void main(String[] args)

Bu kod parçası, aşağıdaki özellikleri içerir:

  • public : main() fonksiyonunun, diğer sınıflardan erişilebilir olmasını sağlar. Yani bu fonksiyona, farklı sınıflardan erişmek mümkündür.
  • static : main() fonksiyonunun, sınıf düzeyinde tanımlanması gerektiğini belirtir. Yani, main() fonksiyonu, sınıfın örneği oluşturulmadan doğrudan çağrılabilir.
  • void : main() fonksiyonunun herhangi bir değer döndürmediğini belirtir.
  • main : Fonksiyonun ismidir. Bu isim, Java yorumlayıcısı tarafından aranır ve uygulamanın çalışmasına başladığı ilk nokta olarak belirlenir.
  • String[] args : main() fonksiyonunun parametreleri, bir String dizisi olarak belirlenir. Bu dizi, kullanıcı tarafından sağlanan komut satırı argümanlarını içerir.

Yani, main() fonksiyonu, Java programında temel işlemlerin başlatılmasını sağlayan ana noktadır. Kod bloğu içinde tanımlanarak, programın başlatılması için gerekli tüm işlemler burada belirtilir.

Java Yazım Kuralları

Java, güçlü bir nesne yönelimli programlama dilidir ve oldukça kolay ve anlaşılır bir sözdizimine sahiptir. Aşağıda, Java'nın syntax (sözdizimi) ile ilgili bilgiler verilmiştir:

  1. Anahtar Kelimeler: Java, önceden tanımlanmış belirli anahtar kelimeleri kullanarak program yazımını kolaylaştırır. Anahtar kelimeler, özel bir amaç için kullanılan ve programlama dilindeki belirli bir işlevi veya anlamı olan önceden tanımlanmış sözcüklerdir. Örnek olarak, public, static, class, void vb. anahtar kelimeler verilebilir.
  2. Değişkenler: Java'da değişkenler, bir değeri saklamak için ayrılmış bellek alanlarıdır. Değişkenler, türlerine göre farklı biçimlerde tanımlanır. Örneğin, int türünde bir değişken tanımlamak için int sayi = 5; şeklinde bir kod kullanılabilir.
  3. Operatörler: Java, farklı operatörler kullanarak aritmetik, karşılaştırma, atama vb. işlemler yapar. Örnek olarak, + (toplama), - (çıkarma), * (çarpma), / (bölme), = (atama), == (eşitlik karşılaştırması), != (eşit olmama karşılaştırması) vb. operatörler verilebilir.
  4. Kontrol Yapıları: Java'da if-else ifadeleri, döngüler (for, while, do-while), switch-case ifadeleri vb. kontrol yapıları kullanılır. Bu yapılar, program akışını kontrol etmek için kullanılır.
  5. Sınıflar ve Nesneler: Java, nesne yönelimli bir programlama dilidir. Java'da nesneler, bir sınıfın örneği olarak oluşturulur. Sınıflar, belirli bir amaç için bir grup değişken ve yöntemleri içeren bir yapıdır. Nesneler, bu sınıfların özelliklerini ve yöntemlerini kullanarak işlemler yaparlar.
  6. Metodlar: Java'da, bir sınıfın belirli bir görevi yerine getiren işlevleri için yöntemler kullanılır. Yöntemler, sınıfın özelliklerine erişebilir ve program akışını kontrol edebilirler.

Java syntax, anlaşılır bir dil kullanır ve sadece yukarıda verilen özelliklerle sınırlı değildir. Java'da, geniş bir dil kütüphanesi de bulunmaktadır ve bu kütüphaneler, farklı amaçlar için kullanılan önceden yazılmış kodlar içerir.

Java Data Türleri

Java, birçok farklı veri türü (data type) sunar. Bu veri tipleri, programlama dilinde farklı türde verileri temsil etmek için kullanılır. Aşağıda, Java'daki en yaygın veri tipleri ve bunların özellikleri detaylı olarak açıklanmaktadır:

Primitive (İlkel) Veri Tipleri

Java'nın en temel veri tipleri, primtive veri tipleridir. Bunlar, programlamada sıklıkla kullanılırlar ve Java dilinde tanımlanmıştır. Java'daki primitive veri tipleri şunlardır:

  • byte: 8 bitlik imzalı bir tamsayı veri tipidir. Değer aralığı -128 ile 127 arasındadır.
  • short: 16 bitlik imzalı bir tamsayı veri tipidir. Değer aralığı -32,768 ile 32,767 arasındadır.
  • int: 32 bitlik imzalı bir tamsayı veri tipidir. Değer aralığı -2,147,483,648 ile 2,147,483,647 arasındadır.
  • long: 64 bitlik imzalı bir tamsayı veri tipidir. Değer aralığı -9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807 arasındadır.
  • float: 32 bitlik bir kayan nokta veri tipidir. Değer aralığı yaklaşık ±3.40282347E+38F'dir.
  • double: 64 bitlik bir kayan nokta veri tipidir. Değer aralığı yaklaşık ±1.79769313486231570E+308'dir.
  • boolean: True veya False değerlerini saklamak için kullanılan bir veri tipidir.
  • char: 16 bitlik bir karakter veri tipidir. Bir Unicode karakteri saklayabilir.

Referans Veri Tipleri

Java'da referans veri tipleri, primitive veri tiplerinin aksine sınıflar ve nesneler gibi verileri temsil eder. Aşağıda, Java'daki referans veri tipleri ve özellikleri detaylı olarak açıklanmaktadır:

  1. String: Java'daki en yaygın referans veri tipidir. String, karakter dizisi olarak saklanır ve birçok farklı String yöntemiyle işlenebilir. Örneğin, bir String nesnesi şu şekilde tanımlanabilir:
String str = "Hello World!";
  1. Array: Java'da, bir dizi (array) bir dizi elemanını bir arada tutan bir veri yapısıdır. Elemanlar, aynı türde verilerdir ve dizi uzunluğu önceden belirlenir. Bir dizi tanımlamak için aşağıdaki sözdizimi kullanılır:
veri_tipi[] dizi_adi = new veri_tipi[dizi_uzunlugu];

Örneğin, bir String dizisi şu şekilde tanımlanabilir:

String[] strArray = new String[3];
strArray[0] = "Hello";
strArray[1] = "World";
strArray[2] = "Java";

  1. Class: Java'da, bir sınıf bir nesnenin özelliklerini ve işlevlerini tanımlar. Her bir sınıf, farklı özelliklere ve yöntemlere sahip olabilir. Sınıflar, bir dosyada tanımlanabilir ve bu dosya genellikle sınıf adıyla aynıdır. Bir sınıf tanımlamak için aşağıdaki sözdizimi kullanılır:
class SinifAdi {
// sınıfın özellikleri ve yöntemleri burada tanımlanır
}

Örneğin, bir Hayvan sınıfı şu şekilde tanımlanabilir:


class Hayvan {
String tur;
int yas;

void beslen() {
System.out.println("Hayvan besleniyor...");
}
}



Bu sınıf, Hayvan türünde bir nesne oluşturulmasını sağlar ve tur ve yas özelliklerine sahiptir. Ayrıca, beslen() yöntemi de tanımlanmıştır. Bu yöntem, Hayvan nesnesinin beslenme işlemini gerçekleştirir.

Referans veri tipleri, primitive veri tiplerinden farklı olarak bellekte farklı şekilde saklanırlar. Bellekte, bir referans veri tipi, bir nesnenin bellek adresini gösteren bir işaretçi olarak saklanır. Bu nedenle, bir referans veri tipi değişkeni tanımlandığında, değişkenin değeri bellekteki nesnenin adresidir.

Veri Türlerinde İsimlendirme

Java'da veri türleri (data types) isimlendirilirken aşağıdaki kurallara dikkat edilir:

  1. İsimlendirme kuralları: Veri türleri, Java'nın isimlendirme kurallarına uygun olarak isimlendirilmelidir. İsimler, harfler, rakamlar ve alt çizgi (_) karakterinden oluşabilir. Ancak, isimler rakamla başlayamaz ve özel bir kelime olmamalıdır. Ayrıca, isimler büyük-küçük harf duyarlıdır.
  2. İsim Uzunluğu: Veri türü isimleri mümkün olduğunca açıklayıcı olmalıdır, ancak çok uzun da olmamalıdır. Genellikle, veri türü isimleri tek kelime veya kısa kelime öbekleri kullanılarak isimlendirilir.
  3. Değişken İsimleri: Veri türleri, değişkenlerin türünü belirtmek için kullanılır. Değişken isimleri de, isimlendirme kurallarına uygun olmalı ve mümkün olduğunca açıklayıcı olmalıdır. Veri türleri ve değişken isimleri arasındaki ilişki, kodun anlaşılabilirliğini artırır.
  4. Kod Stili: Java'da kod stili, veri türü isimlendirmesi için de önemlidir. Kod stili, programın okunabilirliğini artırır ve kodun anlaşılabilirliğini kolaylaştırır. Genellikle, veri türü isimleri küçük harfle başlar ve kelime araları alt çizgi veya başka bir ayırıcı kullanılarak belirtilir.

Özetle, Java'da veri türleri isimlendirilirken isimlendirme kurallarına, değişken isimleri ile ilişkiye, isim uzunluğuna ve kod stiline dikkat edilmelidir.